<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script type="text/JavaScript">
        var obj = new Object();

        // 向对象中添加属性

        /*
            属性名:
                对象的属性名不强制要求遵守标识符的规范
                    什么奇怪的名字什么的都可以用
                但是我们使用的时候还是尽量去按照标识符的规范去做
        */
        obj.name = "HPX";
        obj.var = "hello";
        /*
            如果需要使用特殊的属性名,不能采用.的方式来操作
                需要使用另一种方式:
                    语法:对象["属性名"] = 属性值

                使用[]这种方式去操作属性,会变得更加的灵活
                    在[]中可以直接传递一个变量,这样变量值是多少就会读取那个属性
        */
        obj["123"] = 789;
        obj["nihao"] = "你好";

        var n = "nihao"
        console.log(obj[n]);


        /*
            属性值
                JS独享的属性值, 可以是任意的数据类型
                    甚至也可以是一个对象

        */
       obj.test = true;
       obj.test = null;
       obj.test = undefined;

    //    创建一个对象
        var obj2 = new Object();
        obj2.name = "猪八戒";
        // 讲obj2设置为obj属性
        obj.test = obj2;
        console.log(obj.test.name);

        // 以后我们用的对象大部分都不是自己创建的,可能都是别人创建好的,我们自己来用,我们可能不知道对象里面有什么属性 

        /*
            in 运算符
                通过该运算符可以检查一个对象中是否含有指定的属性
                    如果有则返回true,没有则返回false;

                语法:
                    "属性名"in 对象

         */
        // 检查obj中是否含有test2属性
        console.log("test2" in obj);
        console.log("test" in obj);
        console.log("name" in obj);

    </script>
</head>
<body>
    
</body>
</html>